<div class="refentry" lang="en" xml:lang="en"><a id="glAlphaFunc"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>glAlphaFunc — specify the alpha test function</p></div><div class="refsynopsisdiv"><h2>C Specification</h2><div class="funcsynopsis"><table><tr><td><code class="funcdef">void <b class="fsfunc">glAlphaFunc</b>(</code></td><td>GLenum  </td><td><var class="pdparam">func</var>, </td></tr><tr><td> </td><td>GLclampf  </td><td><var class="pdparam">ref</var><code>)</code>;</td></tr></table></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="parameters"></a><h2>Parameters</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>func</code></em></span></dt><dd><p>
                    Specifies the alpha comparison function.
                    Symbolic constants
                    <code class="constant">GL_NEVER</code>,
                    <code class="constant">GL_LESS</code>,
                    <code class="constant">GL_EQUAL</code>,
                    <code class="constant">GL_LEQUAL</code>,
                    <code class="constant">GL_GREATER</code>,
                    <code class="constant">GL_NOTEQUAL</code>,
                    <code class="constant">GL_GEQUAL</code>, and
                    <code class="constant">GL_ALWAYS</code> are accepted. The initial value is <code class="constant">GL_ALWAYS</code>.
                </p></dd><dt><span class="term"><em class="parameter"><code>ref</code></em></span></dt><dd><p>
                    Specifies the reference value that incoming alpha values are compared to.
                    This value is clamped to the range
                    <math overflow="scroll">

                        <mfenced open="[" close="]">
                            <mn>0</mn>
                            <mn>1</mn>
                        </mfenced>
                    </math>,
                    where 0 represents the lowest possible alpha value
                    and 1 the highest possible value.
                    The initial reference value is 0.
                </p></dd></dl></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="description"></a><h2>Description</h2><p>
            The alpha test discards fragments depending on the outcome of a comparison
            between an incoming fragment's alpha value and a constant reference value.
            <code class="function">glAlphaFunc</code> specifies the reference value and the comparison function.
            The comparison is performed only if alpha testing is enabled. By
            default, it is not enabled.
            (See
            <a class="citerefentry" href="glEnable"><span class="citerefentry"><span class="refentrytitle">glEnable</span></span></a> and <a class="citerefentry" href="glDisable"><span class="citerefentry"><span class="refentrytitle">glDisable</span></span></a> of <code class="constant">GL_ALPHA_TEST</code>.)
        </p><p>
            <em class="parameter"><code>func</code></em> and <em class="parameter"><code>ref</code></em> specify the conditions under which
            the pixel is drawn.
            The incoming alpha value is compared to <em class="parameter"><code>ref</code></em>
            using the function specified by <em class="parameter"><code>func</code></em>.
            If the value passes the comparison,
            the incoming fragment is drawn
            if it also passes subsequent stencil and depth buffer tests.
            If the value fails the comparison,
            no change is made to the frame buffer at that pixel location. The
            comparison functions are as follows:
        </p><div class="variablelist"><dl><dt><span class="term"><code class="constant">GL_NEVER</code></span></dt><dd><p>
                        Never passes.
                    </p></dd><dt><span class="term"><code class="constant">GL_LESS</code></span></dt><dd><p>
                        Passes if the incoming alpha value is less than the reference value.
                    </p></dd><dt><span class="term"><code class="constant">GL_EQUAL</code></span></dt><dd><p>
                        Passes if the incoming alpha value is equal to the reference value.
                    </p></dd><dt><span class="term"><code class="constant">GL_LEQUAL</code></span></dt><dd><p>
                        Passes if the incoming alpha value is less than or equal to the reference value.
                    </p></dd><dt><span class="term"><code class="constant">GL_GREATER</code></span></dt><dd><p>
                        Passes if the incoming alpha value is greater than the reference value.
                    </p></dd><dt><span class="term"><code class="constant">GL_NOTEQUAL</code></span></dt><dd><p>
                        Passes if the incoming alpha value is not equal to the reference value.
                    </p></dd><dt><span class="term"><code class="constant">GL_GEQUAL</code></span></dt><dd><p>
                        Passes if the incoming alpha value is greater than or equal to
                        the reference value.
                    </p></dd><dt><span class="term"><code class="constant">GL_ALWAYS</code></span></dt><dd><p>
                        Always passes (initial value).
                    </p></dd></dl></div><p>
            <code class="function">glAlphaFunc</code> operates on all pixel write operations,
            including those resulting from the scan conversion of points,
            lines,
            polygons,
            and bitmaps,
            and from pixel draw and copy operations.
            <code class="function">glAlphaFunc</code> does not affect screen clear operations.
        </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="notes"></a><h2>Notes</h2><p>
            Alpha testing is performed only in RGBA mode.
        </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="errors"></a><h2>Errors</h2><p>
            <code class="constant">GL_INVALID_ENUM</code> is generated if <em class="parameter"><code>func</code></em> is not an accepted value.
        </p><p>
            <code class="constant">GL_INVALID_OPERATION</code> is generated if <code class="function">glAlphaFunc</code>
            is executed between the execution of <a class="citerefentry" href="glBegin"><span class="citerefentry"><span class="refentrytitle">glBegin</span></span></a>
            and the corresponding execution of <a class="citerefentry" href="glEnd"><span class="citerefentry"><span class="refentrytitle">glEnd</span></span></a>.
        </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="associatedgets"></a><h2>Associated Gets</h2><p>
            <a class="citerefentry" href="glGet"><span class="citerefentry"><span class="refentrytitle">glGet</span></span></a> with argument <code class="constant">GL_ALPHA_TEST_FUNC</code>
        </p><p>
            <a class="citerefentry" href="glGet"><span class="citerefentry"><span class="refentrytitle">glGet</span></span></a> with argument <code class="constant">GL_ALPHA_TEST_REF</code>
        </p><p>
            <a class="citerefentry" href="glIsEnabled"><span class="citerefentry"><span class="refentrytitle">glIsEnabled</span></span></a> with argument <code class="constant">GL_ALPHA_TEST</code>
        </p></div>
        {$pipelinestall}{$examples}
        <div class="refsect1" lang="en" xml:lang="en"><a id="seealso"></a><h2>See Also</h2><p>
            <a class="citerefentry" href="glBlendFunc"><span class="citerefentry"><span class="refentrytitle">glBlendFunc</span></span></a>,
            <a class="citerefentry" href="glClear"><span class="citerefentry"><span class="refentrytitle">glClear</span></span></a>,
            <a class="citerefentry" href="glDepthFunc"><span class="citerefentry"><span class="refentrytitle">glDepthFunc</span></span></a>,
            <a class="citerefentry" href="glEnable"><span class="citerefentry"><span class="refentrytitle">glEnable</span></span></a>,
            <a class="citerefentry" href="glStencilFunc"><span class="citerefentry"><span class="refentrytitle">glStencilFunc</span></span></a>
        </p></div><div class="refsect1" lang="en" xml:lang="en"><div id="Copyright"><h2>Copyright</h2><p>
            Copyright © 1991-2006
            Silicon Graphics, Inc. This document is licensed under the SGI
            Free Software B License. For details, see
            <a class="ulink" href="http://oss.sgi.com/projects/FreeB/" target="_top">http://oss.sgi.com/projects/FreeB/</a>.
        </p></div></div></div>
